package gui;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.SwingConstants;
import java.awt.Component;
import javax.swing.JButton;

import entidades.Produto;
import fachada.Fachada;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Color;

public class TelaCadastroProduto {
	
	/**
	 * chamando a instancia da fachada
	 */
	private Fachada fac = Fachada.obterInstancia();
	
	private JFrame frmCadastroProduto;
	private JTextField textNomeProd;
	private JTextField textValorProd;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					TelaCadastroProduto window = new TelaCadastroProduto();
					window.frmCadastroProduto.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the application.
	 */
	public TelaCadastroProduto() {
		initialize();
	}

	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		frmCadastroProduto = new JFrame();
		frmCadastroProduto.setTitle("Produto");
		frmCadastroProduto.getContentPane().setBackground(Color.DARK_GRAY);
		frmCadastroProduto.setBounds(100, 100, 450, 300);
		frmCadastroProduto.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		JLabel lblNome = new JLabel("Nome do Produto");
		lblNome.setForeground(Color.LIGHT_GRAY);
		
		textNomeProd = new JTextField();
		textNomeProd.setForeground(Color.LIGHT_GRAY);
		textNomeProd.setBackground(Color.DARK_GRAY);
		textNomeProd.setColumns(10);
		
		JLabel lblValorDoProduto = new JLabel("Valor do Produto");
		lblValorDoProduto.setForeground(Color.LIGHT_GRAY);
		
		textValorProd = new JTextField();
		textValorProd.setForeground(Color.LIGHT_GRAY);
		textValorProd.setBackground(Color.DARK_GRAY);
		textValorProd.setColumns(10);
		
		JButton btnInserir = new JButton("Inserir");
		btnInserir.setBackground(Color.LIGHT_GRAY);
		btnInserir.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				Produto p = new Produto(textNomeProd.getText(), Double.parseDouble(textValorProd.getText()));
				fac.inserirProduto(p);
				
			}
		});
		
		JButton btnRemover = new JButton("Remover");
		btnRemover.setBackground(Color.LIGHT_GRAY);
		
		JButton btnAtualizar = new JButton("Atualizar");
		btnAtualizar.setBackground(Color.LIGHT_GRAY);
		
		JButton btnPesquisar = new JButton("Pesquisar");
		btnPesquisar.setBackground(Color.LIGHT_GRAY);
		
		JButton btnSair = new JButton("Sair");
		btnSair.setBackground(Color.LIGHT_GRAY);
		btnSair.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				frmCadastroProduto.dispose();
			}
		});
		GroupLayout groupLayout = new GroupLayout(frmCadastroProduto.getContentPane());
		groupLayout.setHorizontalGroup(
			groupLayout.createParallelGroup(Alignment.TRAILING)
				.addGroup(groupLayout.createSequentialGroup()
					.addGap(32)
					.addGroup(groupLayout.createParallelGroup(Alignment.TRAILING)
						.addGroup(groupLayout.createSequentialGroup()
							.addComponent(lblNome)
							.addPreferredGap(ComponentPlacement.UNRELATED)
							.addComponent(textNomeProd, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
						.addGroup(groupLayout.createSequentialGroup()
							.addComponent(lblValorDoProduto)
							.addGap(18)
							.addComponent(textValorProd, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))
					.addPreferredGap(ComponentPlacement.RELATED, 77, Short.MAX_VALUE)
					.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
						.addComponent(btnInserir)
						.addComponent(btnAtualizar)
						.addGroup(groupLayout.createParallelGroup(Alignment.TRAILING)
							.addComponent(btnRemover)
							.addComponent(btnSair)))
					.addGap(46))
				.addGroup(Alignment.LEADING, groupLayout.createSequentialGroup()
					.addGap(284)
					.addComponent(btnPesquisar, GroupLayout.PREFERRED_SIZE, 104, GroupLayout.PREFERRED_SIZE)
					.addContainerGap(46, Short.MAX_VALUE))
		);
		groupLayout.setVerticalGroup(
			groupLayout.createParallelGroup(Alignment.LEADING)
				.addGroup(groupLayout.createSequentialGroup()
					.addGap(42)
					.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
						.addComponent(textNomeProd, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
						.addComponent(lblNome)
						.addComponent(btnInserir))
					.addPreferredGap(ComponentPlacement.RELATED)
					.addGroup(groupLayout.createParallelGroup(Alignment.TRAILING)
						.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
							.addComponent(textValorProd, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
							.addComponent(btnAtualizar))
						.addComponent(lblValorDoProduto))
					.addGap(11)
					.addComponent(btnRemover)
					.addPreferredGap(ComponentPlacement.RELATED)
					.addComponent(btnPesquisar, GroupLayout.PREFERRED_SIZE, 28, GroupLayout.PREFERRED_SIZE)
					.addPreferredGap(ComponentPlacement.UNRELATED)
					.addComponent(btnSair)
					.addContainerGap(66, Short.MAX_VALUE))
		);
		groupLayout.linkSize(SwingConstants.VERTICAL, new Component[] {btnInserir, btnRemover, btnAtualizar, btnPesquisar, btnSair});
		groupLayout.linkSize(SwingConstants.VERTICAL, new Component[] {textNomeProd, textValorProd});
		groupLayout.linkSize(SwingConstants.HORIZONTAL, new Component[] {btnInserir, btnRemover, btnAtualizar, btnPesquisar, btnSair});
		groupLayout.linkSize(SwingConstants.HORIZONTAL, new Component[] {textNomeProd, textValorProd});
		frmCadastroProduto.getContentPane().setLayout(groupLayout);
	}
	//GET E SET
	public JFrame getTelaProduto() {
		return frmCadastroProduto;
	}

	public void setTelaProduto(JFrame frame) {
		this.frmCadastroProduto = frame;
	}
}
